/*
 * Copyright 2008 Federal Emergency Management Agency
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 * 
 *    http://www.apache.org/licenses/LICENSE-2.0 
 *    
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and 
 * limitations under the License. 
 *  
 */
package gov.fema.hazus.bdc.client.common.ui;

import java.util.HashMap;

import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;

public class Message extends Composite {

	private static Message singleton;
	public static Message get()
	{
		if (singleton != null) {
			return singleton;
		}
		return (singleton = new Message());
	}
	
	private AbsolutePanel panel;
	private HTML message;
	private HashMap<String, String> invalidFields = new HashMap<String, String>();
	
	public Message()
	{
		panel = new AbsolutePanel();
		panel.setStyleName("message-placeholder");
		message = new HTML("");
		panel.add(message);
		initWidget(panel);
	}
	
	public void setText(String text)
	{
		message.setText(text);
	}

	public String getText()
	{
		return message.getText();
	}
	
	public void show() {
		show(message.getText());
	}
	
	public void show(String text) {
		message.setStyleName("message");
		message.setText(text);
		message.setVisible(true);
		//message.setStyleName("loading-indicator");
	}
	
	public void hide()
	{
		message.setStyleName("message-clear");
		message.setText("");
		message.setVisible(false);
		//message.setStyleName("loading-indicator-clear");
	}

	public void addInvalidField(String name) {
		invalidFields.put(name, name);
	}
	
	public void removeInvalidField(String name) {
		invalidFields.remove(name);
	}

	public HashMap getInvalidFields() {
		return invalidFields;
	}
	
}
